<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        const data = [
            { id: "01", name: "张大大", pid: "", job: "项目经理" },
            { id: "02", name: "小亮", pid: "01", job: "产品leader" },
            { id: "03", name: "小美", pid: "01", job: "UIleader" },
            { id: "04", name: "老马", pid: "01", job: "技术leader" },
            { id: "05", name: "老王", pid: "01", job: "测试leader" },
            { id: "06", name: "老李", pid: "01", job: "运维leader" },
            { id: "07", name: "小丽", pid: "02", job: "产品经理" },
            { id: "08", name: "大光", pid: "02", job: "产品经理" },
            { id: "09", name: "小高", pid: "03", job: "UI设计师" },
            { id: "10", name: "小刘", pid: "04", job: "前端工程师" },
            { id: "11", name: "小华", pid: "04", job: "后端工程师" },
            { id: "12", name: "小李", pid: "04", job: "后端工程师" },
            { id: "13", name: "小赵", pid: "05", job: "测试工程师" },
            { id: "14", name: "小强", pid: "05", job: "测试工程师" },
            { id: "15", name: "小涛", pid: "06", job: "运维工程师" }
        ]

        // 完成代码
        // function arrToTree(data) {

        //   //定义一个空数组
        //   const treeData = []
        //   //对data进行遍历
        //   data.forEach(item=>{
        //       //如果该项pid为空,为最大,放入数组
        //       //如果是父子结构,肯定有个最大的,我们先去找老大
        //     if(!item.pid){
        //         treeData.push(item)
        //     }
        //     //找到老大,去所有扁平数据找老大的儿子,过滤所有数据
        //    const children = data.filter(obj =>item.id===obj.pid)
        //    item.children=children
        //   })
        //   return treeData
        // }
        function arrToTree(list){
            const treeData =[] 
            list.forEach(item=>{
                if(item.pid===''){
                    treeData.push(item)
                }
                const children = list.filter(obj=>obj.pid === item.id)
                if(children.length){
                    item.children =children
                }
                
            })
            return treeData
        }

        // 目标：
        const treeData = arrToTree(data)
        console.log(treeData);
    </script>
</body>

</html>